Displaying video retrieved from embedded code in a still image

ABSTRACT

An apparatus for communicating content includes an image capturing module that captures a rendering of at least a portion of a first still image. The first still image includes a shot from a sequence of images of a video. The first still image includes an embedded cryptographic representation of a code. The code corresponds to the sequence of still images comprising the video. The apparatus includes a decoding module that decodes the embedded cryptographic representation of the code to identify the code, a content retrieval module that retrieves the sequence of still images of the video corresponding to the code, and a display module that displays the sequence of still images of the video. A first displayed shot of the video includes the first still image and a remainder of the video includes a remaining series of images from the sequence of images of the video displayed in chronological order.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation application of and claims priority toU.S. patent application Ser. No. 13/899,502 entitled “EMBEDDINGINFORMATION IN AN IMAGE” and filed on May 21, 2013 for Rene RodriguezMarchant, which claims the benefit of U.S. Provisional PatentApplication No. 61/649,446 entitled “APPARATUS, SYSTEM, AND METHOD FOREMBEDDING INFORMATION IN AN IMAGE” and filed on May 21, 2012, and whichare herein incorporated by reference. U.S. patent application Ser. No.13/900,422 entitled “DISPLAYING CONTENT ASSOCIATED WITH CODE EMBEDDED INAN IMAGE” and filed on May 22, 2013 for Rene Rodriguez Marchant, andU.S. patent application Ser. No. 13/900,466 entitled “CAPTURING VIDEO OFAN IMAGE WITH EMBEDDED CODE TO ACCESS CONTENT” and filed on May 22, 2013for Rene Rodriguez Marchant, are incorporated herein by reference.

FIELD

This invention relates to displaying content associated with informationembedded in an image and more particularly relates to capturing arendering of a still image with an embedded code and retrieving asequence of images associated with the code.

BACKGROUND

Advertising has changed dramatically in a short period of time. Theinternet has brought new advertising methods and consumers are movingaway from traditional print and television advertising. Social media hasbrought new avenues of advertising as well. As a result, consumers oftenlook to the internet for information about a product before buying. Evenwhen consumers visit a brick and mortar store, they often use a mobileelectronic device, such as a smartphone or tablet computer to seek moreinformation. Increasingly consumers are looking for videos forinformation about a product or service rather than taking time to readtext. Videos about products have increased dramatically, but vendorscontinue to struggle to distinguish their products over millions ofother products and websites.

SUMMARY

An apparatus for communicating content is disclosed. A method and acomputer program product also perform the functions of the apparatus.The apparatus includes an image capturing module that captures arendering of at least a portion of a first still image. The first stillimage includes a shot from a sequence of images of a video. The firststill image includes an embedded cryptographic representation of a code.The code corresponds to the sequence of still images comprising thevideo. The apparatus includes a decoding module that decodes theembedded cryptographic representation of the code to identify the code,a content retrieval module that retrieves the sequence of still imagesof the video corresponding to the code, and a display module thatdisplays the sequence of still images of the video. A first displayedshot of the video includes the first still image and a remainder of thevideo includes a remaining series of images from the sequence of imagesof the video displayed in chronological order.

In one embodiment, the display module automatically displays thesequence of still images of the video in response to the decoding moduledecoding the embedded cryptographic representation of the code and thecontent retrieval module retrieving the sequence of still images of thevideo corresponding to the code. In another embodiment, eachcryptographic representation of each character of the code includes agroup of regularly spaced mark locations. Each mark location has a markselected from a nonnative mark or a native mark. A pattern of marks inthe group of regularly spaced mark locations is unique to each characterin the code. In another embodiment, the apparatus includes anorientation module that determines an orientation of the rendering ofthe at least a portion of the still image. Orientation of the renderingof the at least a portion of the still image is determined by comparinga distance between mark locations in a first group of regularly spacemark locations with a distance between mark locations in a second groupof regularly spaced mark locations. In another embodiment, theorientation of the rendering of at least a portion of the still image isdetermined in three dimensions.

In one embodiment, the nonnative mark includes a marking added to thestill image. The marking has a perceptible difference between a nativeintensity value of a location in the still image and an intensity valueof the marking added to the still image. In a further embodiment, theperceptible difference between the native intensity value of thelocation in the still image and the intensity value of the marking addedto the still image includes a difference that is greater than apredefined threshold.

In one embodiment, the image capturing module captures an environmentsurrounding the at least a portion of the still image and the displaymodule displays the environment surrounding the at least a portion ofthe still image. The sequence of still images is superimposed on theenvironment surrounding the at least a portion of the still image. Inanother embodiment, the display module changes the displayed orientationof the sequence of still images in response to the orientation moduledetermining that the orientation of the rendering of at least a portionof the still image has changed. In another embodiment, the apparatusincludes a mobile device where the mobile device includes the imagecapturing module, the decoding module, the content retrieval module, andthe display module.

A method for communicating content includes capturing a rendering of atleast a portion of a first still image. The first still image includes ashot from a sequence of images of a video and the first still imageincludes an embedded cryptographic representation of a code. The codecorresponds to the sequence of still images comprising the video. Themethod includes decoding the embedded cryptographic representation ofthe code to identify the code, retrieving the sequence of still imagesof the video corresponding to the code, and displaying the sequence ofstill images of the video. A first displayed shot of the video includesthe first still image and a remainder of the video includes a remainingseries of images from the sequence of images of the video displayed inchronological order.

In one embodiment, displaying the sequence of still images of the videoincludes automatically displaying the sequence of still images of thevideo in response to decoding the embedded cryptographic representationof the code and retrieving the sequence of still images of the videocorresponding to the code. In another embodiment, each cryptographicrepresentation of each character of the code includes a group ofregularly spaced mark locations, each mark location having a markselected from a nonnative mark or a native mark. A pattern of marks inthe group of regularly spaced mark locations is unique to each characterin the code. The method, in one embodiment, includes determining anorientation of the rendering of the at least a portion of the stillimage. In another embodiment, orientation of the rendering of the atleast a portion of the still image is determined by comparing a distancebetween mark locations in a first group of regularly space marklocations with a distance between mark locations in a second group ofregularly spaced mark locations.

In another embodiment, displaying the sequence of still images of thevideo changes the displayed orientation of the sequence of still imagesin response to determining that the orientation of the rendering of atleast a portion of the still image has changed. In another embodiment,the nonnative mark includes a marking added to the still image. Themarking has a perceptible difference between a native intensity value ofa location in the still image and an intensity value of the markingadded to the still image. In another embodiment, capturing a renderingof at least a portion of a first still image comprises capturing anenvironment surrounding the at least a portion of the still image.Displaying the sequence of still images of the video includes displayingthe environment surrounding the at least a portion of the still image.The sequence of still images is superimposed on the environmentsurrounding the at least a portion of the still image. In anotherembodiment, the method is part of a computer program product fordisplaying content. The computer program product includes a computerreadable storage medium having program code embodied therein.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsthat are illustrated in the appended drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered to be limiting of its scope, the inventionwill be described and explained with additional specificity and detailthrough the use of the accompanying drawings, in which:

FIG. 1 is a schematic block diagram illustrating one embodiment of asystem 100 to embed information in an image in accordance with thepresent invention;

FIG. 2 is a schematic block diagram illustrating one embodiment of acode definition module in accordance with the present invention;

FIG. 3A is a schematic block diagram illustrating one embodiment of acryptography module in accordance with the present invention;

FIG. 3B is a schematic block diagram illustrating one embodiment of acryptographic representation of a character in accordance with thepresent invention;

FIG. 4 is a schematic block diagram illustrating one embodiment of acryptography system in accordance with the present invention;

FIG. 5 is a schematic block diagram illustrating another embodiment of acryptography module in accordance with the present invention;

FIG. 6 is a schematic block diagram illustrating one embodiment of anembedding module in accordance with the present invention;

FIG. 7A is a schematic block diagram depicting one embodiment of anorientation module for determining an orientation of an image with theimage substantially perpendicular to an image viewer;

FIG. 7B illustrates a schematic block depicting an embodiment of anorientation module for determining an orientation of an image whereinthe image is rotated about an y-axis with respect to an image viewer;

FIG. 7C illustrates a schematic block depicting an embodiment of anorientation module for determining an orientation of an image whereinthe image is rotated about an x-axis with respect to an image viewer;

FIG. 8 is a schematic block diagram illustrating one embodiment of anapparatus to communicate content in accordance with the presentinvention;

FIG. 9A is a schematic block diagram illustrating one embodiment of anoperation of an orientation module and a display module for determininga first orientation of the embedded image and displaying a unit ofcontent in an orientation corresponding to the first orientation inaccordance with the present invention;

FIG. 9B is a schematic block diagram illustrating one embodiment of anoperation of an orientation module and a display module for determininga second orientation of the embedded image and displaying a unit ofcontent in an orientation corresponding to the second orientation inaccordance with the present invention;

FIG. 10 is a schematic block diagram illustrating one embodiment of anoperation of an image capturing module and a display module forsuperimposing a unit of content on a capture of an environmentsurrounding an image in accordance with the present invention;

FIG. 11 is a schematic block diagram illustrating one embodiment of anapparatus to communicate content in accordance with the presentinvention;

FIG. 12 is a schematic block diagram illustrating one embodiment of anapparatus to communicate content in accordance with the presentinvention;

FIG. 13 is a schematic flowchart diagram illustrating one embodiment ofa method of embedding information in an image in accordance with thepresent invention;

FIG. 14 is a schematic flowchart diagram illustrating one embodiment ofa method to communicate content in accordance with the presentinvention;

FIG. 15 is a schematic flowchart diagram illustrating one embodiment ofa method to capture live video of an image with embedded code to accessand communicate content in accordance with the present invention; and

FIG. 16 is a schematic flowchart diagram illustrating one embodiment ofa method to capture a rendering of a still image with embedded code toaccess and communicate a sequence of related still images in accordancewith the present invention.

DETAILED DESCRIPTION

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment. Thus, appearances of the phrases“in one embodiment,” “in an embodiment,” and similar language throughoutthis specification may, but do not necessarily, all refer to the sameembodiment, but mean “one or more but not all embodiments” unlessexpressly specified otherwise. The terms “including,” “comprising,”“having,” and variations thereof mean “including but not limited to”unless expressly specified otherwise. An enumerated listing of itemsdoes not imply that any or all of the items are mutually exclusiveand/or mutually inclusive, unless expressly specified otherwise. Theterms “a,” “an,” and “the” also refer to “one or more” unless expresslyspecified otherwise.

Furthermore, the described features, advantages, and characteristics ofthe embodiments may be combined in any suitable manner. One skilled inthe relevant art will recognize that the embodiments may be practicedwithout one or more of the specific features or advantages of aparticular embodiment. In other instances, additional features andadvantages may be recognized in certain embodiments that may not bepresent in all embodiments.

These features and advantages of the embodiments will become more fullyapparent from the following description and appended claims, or may belearned by the practice of embodiments as set forth hereinafter. As willbe appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, and/or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having program code embodied thereon.

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of program code may, forinstance, comprise one or more physical or logical blocks of computerinstructions which may, for instance, be organized as an object,procedure, or function. Nevertheless, the executables of an identifiedmodule need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the module and achieve the stated purposefor the module.

Indeed, a module of program code may be a single instruction, or manyinstructions, and may even be distributed over several different codesegments, among different programs, and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules, and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices, and may exist, atleast partially, merely as electronic signals on a system or network.Where a module or portions of a module are implemented in software, theprogram code may be stored and/or propagated on in one or more computerreadable medium(s).

The computer readable medium may be a tangible computer readable storagemedium storing the program code. The computer readable storage mediummay be, for example, but not limited to, an electronic, magnetic,optical, electromagnetic, infrared, holographic, micromechanical, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing.

More specific examples of the computer readable storage medium mayinclude but are not limited to a portable computer diskette, a harddisk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), aportable compact disc read-only memory (CD-ROM), a digital versatiledisc (DVD), an optical storage device, a magnetic storage device, aholographic storage medium, a micromechanical storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, and/or store program code for use by and/or in connection withan instruction execution system, apparatus, or device.

The computer readable medium may also be a computer readable signalmedium. A computer readable signal medium may include a propagated datasignal with program code embodied therein, for example, in baseband oras part of a carrier wave. Such a propagated signal may take any of avariety of forms, including, but not limited to, electrical,electro-magnetic, magnetic, optical, or any suitable combinationthereof. A computer readable signal medium may be any computer readablemedium that is not a computer readable storage medium and that cancommunicate, propagate, or transport program code for use by or inconnection with an instruction execution system, apparatus, or device.Program code embodied on a computer readable signal medium may betransmitted using any appropriate medium, including but not limited towire-line, optical fiber, Radio Frequency (RF), or the like, or anysuitable combination of the foregoing

In one embodiment, the computer readable medium may comprise acombination of one or more computer readable storage mediums and one ormore computer readable signal mediums. For example, program code may beboth propagated as an electro-magnetic signal through a fiber opticcable for execution by a processor and stored on RAM storage device forexecution by the processor.

Program code for carrying out operations for aspects of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++, PHP or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The computer program product may be integrated into a client, server andnetwork environment by providing for the computer program product tocoexist with applications, operating systems and network operatingsystems software and then installing the computer program product on theclients and servers in the environment where the computer programproduct will function.

Furthermore, the described features, structures, or characteristics ofthe embodiments may be combined in any suitable manner. In the followingdescription, numerous specific details are provided, such as examples ofprogramming, software modules, user selections, network transactions,database queries, database structures, hardware modules, hardwarecircuits, hardware chips, etc., to provide a thorough understanding ofembodiments. One skilled in the relevant art will recognize, however,that embodiments may be practiced without one or more of the specificdetails, or with other methods, components, materials, and so forth. Inother instances, well-known structures, materials, or operations are notshown or described in detail to avoid obscuring aspects of anembodiment.

Aspects of the embodiments are described below with reference toschematic flowchart diagrams and/or schematic block diagrams of methods,apparatuses, systems, and computer program products according toembodiments of the invention. It will be understood that each block ofthe schematic flowchart diagrams and/or schematic block diagrams, andcombinations of blocks in the schematic flowchart diagrams and/orschematic block diagrams, can be implemented by program code. Theprogram code may be provided to a processor of a general purposecomputer, special purpose computer, sequencer, or other programmabledata processing apparatus to produce a machine, such that theinstructions, which execute via the processor of the computer or otherprogrammable data processing apparatus, create means for implementingthe functions/acts specified in the schematic flowchart diagrams and/orschematic block diagrams block or blocks.

The program code may also be stored in a computer readable medium thatcan direct a computer, other programmable data processing apparatus, orother devices to function in a particular manner, such that theinstructions stored in the computer readable medium produce an articleof manufacture including instructions which implement the function/actspecified in the schematic flowchart diagrams and/or schematic blockdiagrams block or blocks.

The program code may also be loaded onto a computer, other programmabledata processing apparatus, or other devices to cause a series ofoperational steps to be performed on the computer, other programmableapparatus or other devices to produce a computer implemented processsuch that the program code which executed on the computer or otherprogrammable apparatus provide processes for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The schematic flowchart diagrams and/or schematic block diagrams in theFigures illustrate the architecture, functionality, and operation ofpossible implementations of apparatuses, systems, methods and computerprogram products according to various embodiments of the presentinvention. In this regard, each block in the schematic flowchartdiagrams and/or schematic block diagrams may represent a module,segment, or portion of code, which comprises one or more executableinstructions of the program code for implementing the specified logicalfunction(s).

It should also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in theFigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. Other steps and methods may be conceived that are equivalentin function, logic, or effect to one or more blocks, or portionsthereof, of the illustrated Figures.

Although various arrow types and line types may be employed in theflowchart and/or block diagrams, they are understood not to limit thescope of the corresponding embodiments. Indeed, some arrows or otherconnectors may be used to indicate only the logical flow of the depictedembodiment. For instance, an arrow may indicate a waiting or monitoringperiod of unspecified duration between enumerated steps of the depictedembodiment. It will also be noted that each block of the block diagramsand/or flowchart diagrams, and combinations of blocks in the blockdiagrams and/or flowchart diagrams, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and program code.

FIG. 1 illustrates a schematic block diagram of a system 100 to embedinformation in an image according to one embodiment of the presentinvention. The system 100 includes a computer 102 having a codedefinition module 104, a cryptography module 106, an embedding module108, and an orientation module 109. In certain embodiments the system100 also includes a computer network 110, a file server 112, a number ofwork stations such as work stations 114 and 116, a display unit 118, amobile computing device 120, and a printer 122.

While the embodiment illustrated in FIG. 1 shows the code definitionmodule 104, the cryptography module 106, the embedding module 108, andthe orientation module 109 as being stored on a computer 102, oneskilled in the art will recognize that the code definition module 104,the cryptography module 106, the embedding module 108, and theorientation module 109 may be contained within a file server 112, amainframe, a personal computer, a laptop, a personal digital assistant,or other computing device. The computer 102 and the file server 112 areconnected to the computer network 110 providing remote access to thecode definition module 104, the cryptography module 106, the embeddingmodule 108, and the orientation module 109 via a computer network 110.

The code definition module 104, the cryptography module 106, theembedding module 108, and the orientation module 109 may be accesseddirectly through input/output devices connected to the computer 102 orthrough the computer network 110 in a client-server relationship, remoteaccess, or other network-related operation. One of skill in the art willrecognize other ways to access the code definition module 104, thecryptography module 106, the embedding module 108, and the orientationmodule 109.

In one embodiment, the code definition module 104, the cryptographymodule 106, the embedding module 108, and the orientation module 109 arestored on a data storage device in or connected to a computer 102. Inanother embodiment, the code definition module 104, the cryptographymodule 106, the embedding module 108, and the orientation module 109 maybe distributed in different locations throughout the system 100. Incertain embodiments the code definition module 104 may be stored on onedevice within the system 100 and the cryptography module 106, theembedding module 108, and the orientation module 109 may be stored otherdevices within the system 100. One of skill in the art will recognizeother ways to store and execute portions of the code definition module104, the cryptography module 106, the embedding module 108, and theorientation module 109.

As further discussed below, in certain embodiments, the system 100 mayinclude a display unit 118, a mobile computing device 120, and/or aprinter 122 for displaying an image having embedded information therein.In certain embodiments, the display unit 118 may be a standalone displaysuch as a monitor or a television. In one embodiment, the embeddedimage, having embedded cryptographic representations, may be displayedon a mobile computing device 120 such as a conventional cellular phone,a Smartphone, a Personal Data Assistant (PDA), a tablet computer, etc.In other embodiments, the embedded image may be printed on a printer 122such as a convention dot matrix printer, laser printer, etc. One ofskill in the art will recognize other ways of displaying the embeddedimage.

FIG. 2 is a schematic block diagram illustrating one embodiment of acode definition module 104 in accordance with the present invention. Incertain embodiments, the code definition module 104 defines a code 202corresponding to a unit of content 204. The unit of content 204, in oneembodiment, may be any digital information relayable to a user. Forexample, in one embodiment, the unit of content may be a two or threedimensional image 206 uniquely linked to or referenced by the code 202.In other embodiment, the unit of content 204 may be a Uniform ResourceLocator (URL) directing a user to a webpage 210 uniquely linked to orreferenced by the code 202. In yet another embodiment, the unit ofcontent may be a two or three dimensional video image 208 uniquelylinked to or referenced by the code 202. One of skill in the art willrecognize other units of content 204 (i.e. informational units) that maybe linked to or referenced by the code 202.

In certain embodiments, the units of content 204 referenced by or linkedto the code 202 may be stored on the computer 102, the file server 112,the mobile device, or on any of the work stations 114-116. In such anembodiment, the units of information may reside or be stored within thesystem 100. In other embodiments, the units of content 204 may reside orbe stored on a remote device or system (not shown).

The code 202, in certain embodiments, includes at least one character212. In certain embodiments, the characters 212 defining the code 202are unique to a particular unit of content. In other embodiments, thecharacters 212 may be unique to a number of units of content 204. Forexample, in certain embodiments, the code 202 may linked to or referenceone or more still image 206, one or more video image 208 and/or one ormore webpages 210.

The characters 212 comprising the code 202, in one embodiment, are analphanumeric character. For example, in certain embodiments, eachcharacter 212 may be any numeral from zero (0) through nine (9) and/oran alphabet character from A through F. Thus, in one embodiment, thecode may contain various arrangements of the sixteen differentcharacters 212. One of skill in the art will recognize that in otherembodiments, the characters 212 may be non-alphanumeric characters.Similarly, one of skill in the art will recognize that in certainembodiments, the code 202 may include additional alphabet charactersother than the characters A through F.

The characters 212 are arranged to create an identifier unique to one ormore units of content 204. In one embodiment, the code includes twelvecharacters 212. For example, in the embodiment illustrated in FIG. 1,the code 202 includes the characters “F, 9, 8, C, D, 5, A, 5, 6, 0, 4,and A.” This code 202 may be unique to a particular unit of content 204,i.e., video image 208. Thus, as further discussed below, when aparticular image includes an embedded code “F98CD5A5604A” the code 202may be used to retrieve the video image 208 corresponding to that code202. Of course, other codes 202 will have a different arrangement ofcharacters 212 that identify different units of content 204.

In one embodiment, the code 202 includes a start identifier 214, apayload section 216, an error check section 218, and a stop identifier220. In certain embodiments, only the payload section 216 is unique to aparticular unit of content 204. In such an embodiment, the startidentifier 214 may be the same character for every code 202 defined bythe code definition module 104. Similarly, the stop identifier 220 maybe the same character for every code 202 defined by the code definitionmodule 104. For example, in the embodiment illustrated in FIG. 2, thestart identifier 214 is an “F” character 212 and the stop identifier 220is an “A” character 212. Any other codes 202 defined by the codedefinition module 104 will have an “F” as the start identifier 214 andan “A” as the stop identifier 220. One of skill in the art willrecognize that in certain embodiments, the start identifier 214 and thestop identifier 220 may be a character 212 other than an “F” and an “A”respectively.

In other embodiments, the start identifier 214 and the stop identifier220 may be different for each code 202. Thus, in one embodiment, thestart identifier 214 for one code 202 may be a character 212 i.e., a“C,” for another code 202 the start identifier 214 may be a “D,” foranother code 202 the start identifier may be a “0,” etc. Similarly, incertain embodiments, the stop identifier 220 for one code may be acharacter 212 i.e., a “9,” for another code 202 the stop identifier 220may be an “F,” for another code 202 the stop identifier 220 may be an“E,” etc.

The payload section 216 is unique to a particular unit of content 204.In certain embodiments, the payload section 216 includes eight (8)characters 212. A payload section 216 having eight (8) characters 212selected from a sixteen (16) possible characters 212 gives four billiontwo hundred ninety four million nine hundred sixty seven thousand twohundred and ninety six (4,294,967,296) possible arrangements of thecharacters. Accordingly, if the payload section 216 is limited to eight(8) characters 212, the code definition module 104 can uniquely define acode for four billion two hundred ninety four million nine hundred sixtyseven thousand two hundred and ninety six (4,294,967,296) units ofcontent 204. In embodiments where this number is insufficient, thepayload section 216 of the code 202 can be increased to include morecharacters 212.

In certain embodiments, each unit of content 204 is correlated to aparticular code 202 through a database 222 that includes a listing ofcodes 224 and a listing of information units 226 corresponding to thecodes. As further discussed below, when a code 202 is identified in animage, the database 222 is referenced to determine which unit of content204 corresponds to that code 202.

Given the large number of possible arrangements of the characters 212 inthe code 202, in certain embodiments, the code 202 may include an errorcheck section 218 for checking the payload section 216 of the code 202to determine the reliability of the payload section 216 of the code 202.The error check section 218 of the code 202, in one embodiment, includesa fixed number of characters 212 derived from an algorithm. The listingof information units 226 in the database 222 also includes error checkcharacters 228. The algorithm used to derive the characters 212 in theerror check section 218 of the code 202 is the same algorithm used toderive the error check characters 228 in the listing of informationunits 226. When a code 202 is identified in an image, the algorithm isused to determine if characters 212 in the error check section 218 ofthe code 202 and the error check characters 228 in the listing of theinformation units 226 match. If the characters 212 in the error checksection 218 of the code 202 and the error check characters 228 in thelisting of the information units 226 match, the code 202 can be verifiedas a correct code 202. If the characters 212 in the error check section218 of the code 202 and the error check characters 228 in the listing ofthe information units 226 do not match, the identified code 202 in theimage is incorrect and the image should be rechecked or rescanned todetermine a correct code 202.

FIG. 3 is a schematic block diagram illustrating one embodiment of acryptography module 106 in accordance with the present invention. Incertain embodiments, the cryptography module 106 defines a cryptographicrepresentation 302 for each character 212 of the at least one character212 in the code 202.

FIG. 3B illustrates an enlarged schematic block diagram of acryptographic representation 302 c of a character 212. Eachcryptographic representation 302 is a group of regularly spaced marklocations 304. Thus, a distance between mark location 304 a and marklocation 304 b as illustrated by line 306 a is approximately the same asa distance between mark location 304 c and mark location 304 d asillustrated by line 306 b. Similarly, a distance between mark location304 a and mark location 304 c as illustrated by line 306 c isapproximately the same as a distance between mark location 304 c andmark location 304 d as illustrated by line 306 d. In certainembodiments, each mark location 304 is equidistant from at least twomark locations 304. For example, in one embodiment, distances 306 a, 306b, 306 c and 306 d are substantially equal. As further discussed below,an array of regularly spaced mark locations 304 allows an orientation ofan image having imbedded cryptographic representations 302 to bedetermined.

In certain embodiments, each mark location 304 includes a either anonnative mark 308 a or a native mark 308 b-308 d. A nonnative mark 308a is a marking added to an image that has a perceptible differencebetween a native intensity value of a location in the image and anintensity value of the marking added to the image. A native mark 308b-308 d is a marking having an intensity value substantially similar toa native intensity value of a location in the image corresponding to aparticular mark location 304. That is, a native mark 308 b-308 d has thesame intensity value in a particular area as the original unalteredimage. For example, in the embodiment illustrated in FIG. 3B, marklocations 304 b-304 d have native or unaltered markings 308 b-308 d suchthat the intensity values for mark locations 304 b-304 d issubstantially the same as the intensity values for the areas in theoriginal unaltered image. Mark location 304 a, on the other hand,includes a nonnative mark 308 a. Thus, mark location 304 a includes amarking that has a perceptible difference between the native intensityof the original image and the marking added to mark location 304 a.

In certain embodiments, the perceptible difference for a nonnative mark308 a may be a difference between the native intensity value of thelocation in the image and the intensity value of the marking added tothe image that is greater than a predefined threshold. In such anembodiment, the predefined threshold may be varied to optimizerecognition of the intensity difference. In another embodiment, thepredefined threshold may be varied as a tradeoff between distortion ofthe image (i.e., markings observable by the naked eye) and recognitionof the markings by a computer implemented process. In yet anotherembodiment, the predefined threshold may be a maximum difference betweenthe native intensity value of the location in the image and theintensity value of the marking added to the image.

In the embodiment illustrated in FIG. 3B, the native mark locations 304b-304 d are illustrated as having a dashed line surrounding each marklocation 304 b-304 d. One of skill in the art will recognize that thedashed line is for illustrative purposes. Accordingly, in certainembodiments, the native mark locations 304 b-304 d may simply havenative markings (i.e., markings that occur in the native image). Inother embodiments, the native mark locations 304 b-304 d may include amarking (such as the dashed lines). Additionally, the embodimentillustrated in FIG. 3B depicts the markings as being circular. However,one of skill in the art will recognize that in other embodiments, themarkings may be square, rectangular, triangular, octagonal, or any othergeometric shape.

A pattern of marks in the group of regularly spaced mark 304 locationsis unique to each character 212 in the code 202. For example, FIG. 4depicts a schematic block diagram illustrating one embodiment of acryptography system 400 in accordance with the present invention. Asdiscussed above, in certain embodiments, the cryptography module 106defines a cryptographic representation 302 for each character 212 of theat least one character in the code 202. In the embodiment illustrated inFIG. 4, each cryptographic representation 302 (FIG. 3A) includes a groupor regularly spaced mark locations 304 (FIG. 3B) and each mark locationhas a mark selected from one of a nonnative mark 308 a (FIG. 3B) and anative mark 308 b-308 d (FIG. 3 b). Each pattern in a group of regularlyspaced mark locations 304 is unique to each character 202 of the atleast one character in the code 202.

Accordingly, as illustrated in FIG. 4, each of the groups of regularlyspaced mark locations 302 has a unique pattern. For example, the patternof marks for the group of regularly spaced mark locations 304 for thecryptographic representation 302 corresponding to the letter “A”includes nonnative marks 308 a in the two leftmost mark locations 304and native marks 308 b-308 d in the two rightmost mark locations 304.The pattern of marks for the group of regularly spaced mark locations304 for the cryptographic representation 302 corresponding to thenumeral “1” includes nonnative marks 308 a in the two rightmost marklocations 304 and native marks 308 b-308 d in the two leftmost marklocations 304. Each of the pattern of marks for the group of regularlyspaced mark locations 304 for the cryptographic representation 302corresponding to the other numeric or alphabetic characters have uniquepatterns of nonnative marks 308 a and native marks 308 b-308 d.

While the cryptography system 400 illustrates six (6) alphabeticcharacters corresponding to the letters “A-F” and ten numeric characterscorresponding to the numerals “0-9,” one of skill in the art willrecognize that in other embodiments, the cryptography system 400 mayhave other alphabetic, numeric, or other characters capable ofdistinguishing a unit of content 204 (FIG. 2).

In the cryptography system 400 illustrated in FIG. 4, there are sixteen(16) total permutations of mark patterns in the groups of regularlyspaced mark locations 304. The sixteen (16) permutations include everypossible permutation for groups of mark locations 304 having four (4)possible variations of marks in four (4) possible mark locations 304.However, one of skill in the art will recognize that in certainembodiments, the cryptography system 400 may include more than sixteen(16) total characters 212. In such an embodiment, the groups ofregularly spaced mark locations 304 may include more than four (4) marklocations 304 to accommodate additional variations of marks.

FIG. 5 is a schematic block diagram illustrating another embodiment of acryptography module 106 in accordance with the present invention. Asdiscussed above, in certain embodiments, the cryptography module 106defines a cryptographic representation 504 for each character 212 of theat least one character in the code 202, each cryptographicrepresentation comprising a group 504 of regularly spaced mark locations304 (FIG. 3B). As discussed above, in certain embodiments, only thenonnative marks 308 a are added to an image at an appropriate marklocation 304. In such an embodiment, the native marks 308 b-308 d aresimply the native intensity values of the original image.

In certain embodiments, the group's 504 of regularly spaced marklocations 304 are positioned in a number of rows and columns. In oneembodiment, the group's 504 of regularly spaced mark locations 304 arepositioned in four rows and three columns. In other embodiments, thegroup's 504 of regularly spaced mark locations 304 may be positioned inmore rows and columns. In yet another embodiment, the group's 504 ofregularly spaced mark locations 304 are positioned in fewer rows andcolumns.

In the embodiment illustrated in FIG. 5, the patterns of marks in thegroups 504 of regularly spaced mark locations 304 correspond tocharacters 212 in the code 202. Thus, character 212 a, an “F”corresponds to the pattern of marks in the group 504 a of regularlyspaced mark locations 304. Similarly, character 212 b, a “9” correspondsto the pattern of marks in the group 504 b of regularly spaced marklocations 304. In this manner, each of the other characters 212 c-2121in the code 202 is represented by the other group's 504 c-5041.

As discussed above, the first character 212 a typically represents astart indicator. Thus, the pattern of marks in group 504 a correspondsto a start indicator, in this case a representation of the character “F”212 a. The last character 2121 typically represents a stop indicator.Accordingly, the pattern of marks in group 5041 corresponds to a stopindicator, in this case a representation of the character “A” 2121. Thepattern of marks in groups 504 j and 504 k correspond to the error checksection 218 (FIG. 2) of the code 202.

In the embodiment illustrated in FIG. 5, the group's 504 of regularlyspaced mark locations 304 are shown as having a dashed line surroundingeach group 504. One of skill in the art will recognize that the dashedlines are depicted for illustrative purposes and that in actual use, thedashed lines may be omitted.

FIG. 6 is a schematic block diagram illustrating one embodiment of anembedding module 108 in accordance with the present invention. Incertain embodiments, the embedding module 108 embeds the cryptographicrepresentation 302 for each character 212 of the at least one characterof the code 202 into at least a portion 604 of an image 602. In certainembodiments, the cryptographic representation 302 of each character 212may be repeated throughout the image 602 such that the code 202 isredundantly represented throughout the image 602 such that therepresentation of the code 202 can be identified by scanning any portionof the image. As further discussed below, a distance between marklocations 304 in the image 602 indicates an orientation of the image602.

In certain embodiments, the embedding module 108 embeds thecryptographic representation 302 for each character 212 of the at leastone character of the code 202 into at least a portion 604 of an image602 by adding a marking to the image 602. In one embodiment, the markingadded to the image 602 has a perceptible difference between a nativeintensity value of a location in the image 602 (the original imageintensity) and an intensity value of the marking added to the image 602.In certain embodiments, the perceptible difference between the nativeintensity value of the location in the image and the intensity value ofthe marking added to the image may be a difference that is greater thana predefined threshold. In other embodiments, the marking may have amaximum intensity value.

In one embodiment, the markings may be added to a multiple colorchannels of the image 602. In certain embodiments, the markings areadded to a single color channel. In yet another embodiment, the markingsare added to the blue color channel. Markings in the blue color channelmay provide the least noticeable color variations such that the markingsare difficult to perceive by a human and the image 602 having theembedded markings looks substantially similar to the original unembeddedimage.

FIGS. 7A-7C illustrates various schematic block diagrams depictingembodiments of an orientation module 109 in accordance with the presentinvention. Specifically, FIG. 7A is a schematic block diagram depictingan embodiment of the orientation module 109 for determining anorientation of an image wherein the image is substantially perpendicularto an image viewer. FIG. 7B illustrates a schematic block depicting anembodiment of the orientation module 109 for determining an orientationof an image wherein the image is rotated about a y-axis with respect toan image viewer. FIG. 7C illustrates a schematic block depicting anembodiment of the orientation module 109 for determining an orientationof an image wherein the image is rotated about an x-axis with respect toan image viewer.

In certain embodiments, as further discussed below, the image viewer maybe an image capturing module, such as a flatbed scanner, a digitalcamera, etc. that captures a rendering of the image 602 or a portion 604of the image 602 having the groups 504 of regularly spaced marklocations 304 corresponding to the embedded cryptographicrepresentations 302 of the code 202. Where the image 602 or the portion604 of the image is substantially perpendicular to the image viewer, adistance between each mark locations 304 is approximately the same forall of the groups 504 of regularly spaced mark locations 304corresponding to the embedded cryptographic representations 302 of thecode 202.

For example, with reference to FIG. 7A, when the image 602 or theportion 604 of the image 602 is substantially perpendicular to an imageviewer, a horizontal distance 702 a between the regularly spaced marklocations 304 of group 504 k is approximately the same as a horizontaldistance 702 b between the regularly spaced mark locations 304 of group5041. Similarly, a vertical distance 702 c between the regularly spacedmark locations 304 of group 504 g is approximately the same as avertical distance 702 d between the regularly spaced mark locations 304of group 504 j. Distances between the regularly spaced mark locations304 of the other group's 504 a-504 f, 504 h, and 504 i are alsoapproximately the same.

When the image 602 or the portion 604 of the image 602 is rotated aboutthe y-axis, as illustrated in FIG. 7B, the horizontal distances betweenthe mark locations 304 changes depending on the position of theparticular group 504 within the image 602 or portion 604 of the image602. For example, because of the limitations with respect to depictingan image 602 or portion 604 of an image 602 in two dimensions, marklocations 304 located further away from the image viewer will appearcloser together when viewed in two dimensions. Thus, the horizontaldistance 702 a between the regularly spaced mark locations 304 of group504 k is larger than a horizontal distance 702 b between the regularlyspaced mark locations 304 of group 5041 when the image 602 or portion604 of the image 602 is viewed in two dimensions. Because the image 602or portion 604 of the image 602 depicted in FIG. 7B is only rotatedabout the y-axis, all of the vertical distances between the regularlyspaced mark locations 304 of the groups 504 are approximately the same.

When the image 602 or the portion 604 of the image 602 is rotated aboutthe x-axis, as illustrated in FIG. 7C, the vertical distances betweenthe mark locations 304 also changes depending on the position of theparticular group 504 within the image 602 or portion 604 of the image602. Again, because of the limitations with respect to depicting animage 602 or portion 604 of an image 602 in two dimensions, marklocations 304 located further away from the image viewer will appearcloser together when viewed in two dimensions. Thus, the verticaldistance 702 c between the regularly spaced mark locations 304 of group504 j is larger than the vertical distance 702 d between the regularlyspaced mark locations 304 of group 504 g when the image 602 or portion604 of the image 602 is viewed in two dimensions. Because the image 602or portion 604 of the image 602 depicted in FIG. 7C is only rotatedabout the x-axis, all of the horizontal distances between the regularlyspaced mark locations 304 of the groups 504 are approximately the same.

While the embodiments discussed above indicate that the orientationmodule 109 references distances between the mark locations 304 withinvarious groups 504 to determine an orientation of the image 602 orportion 604 of the image 602, one of skill in the art will recognizethat the orientation module 109 may use various other visual indicatorsto determine the orientation of the image 602 or portion 604 of theimage 602. For example, in one embodiment, the orientation module 109may reference a size of the markings within the mark locations 304 ofthe various groups 504 to determine the orientation of the image 602 orportion 604 of the image 602. Markings located further away from theimage viewer will appear smaller than markings located closer to theimage viewer.

In certain embodiments, the orientation module 109 of the image 602 orthe portion 604 of the image 602 may be determined in three dimensions.For example, in one embodiment, the orientation module 109 may determinea rotation of the image 602 or the portion 604 of the image 602 aboutthe y-axis as discussed above with reference to FIG. 7B. The orientationmodule 109 may also determine a rotation of the image 602 or the portion604 of the image 602 about the x-axis as discussed above with referenceto FIG. 7C. Determining the rotation of the image 602 or the portion 604of the image 602 about the z-axis involves simply referencing whichdirection the groups 504 of regularly spaced mark locations 304 arerotated with respect to the z-axis.

One of skill in the art will recognize other ways of determining anorientation of at least a portion 604 of the image 602. For example, incertain embodiments, the orientation module 109 may use a size of thenonnative markings embedded within the image 602 to determine theorientation of the image 602. If the nonnative markings all have asubstantially similar size in an image 602 that is substantiallyperpendicular to the image viewer, when the image 602 is rotated thenonnative markings that are positioned further away from the imageviewer will appear smaller in the two dimensional rendering of the image602. By comparing the relative sizes of the nonnative markings, theorientation module 109 can determine the orientation of the image 602.

In the embodiments illustrated in FIGS. 7A-7C, the native markings areshown as dashed lines for ease of illustration. However, as discussedabove, in an exemplary embodiment, the native markings are simply nativeto the original image. Accordingly, in certain embodiments, nativemarkings do not include any changes to the original image. Additionally,in FIGS. 7B and 7C reference numerals for mark locations 304 and groups504 have been omitted for clarity. However, one of skill in the art willrecognize that in certain embodiments the portion 604 of the image 602depicted in FIG. 7A may be substantially similar to the portions 604 ofthe images 602 depicted in FIGS. 7B and 7C.

FIG. 8 is a schematic block diagram illustrating one embodiment of anapparatus 800 to communicate content in accordance with the presentinvention. In certain embodiments, the apparatus 800 includes an imagecapturing module 802, a decoding module 804, an orientation module 806,a content retrieval module 808, and a display module 810.

While the embodiment illustrated in FIG. 8 depicts the decoding module804, the orientation module 806, and the content retrieval module 808 asbeing stored on a file server 112, one skilled in the art will recognizethat the decoding module 804, the orientation module 806, and thecontent retrieval module 808 may be contained within a mobile computingdevice 120, mainframe, a personal computer 812, a personal digitalassistant, or other computing device.

The mobile computing device 120, personal computer 812 and the fileserver 112 are connected to the computer network 110 providing remoteaccess to the image capturing module 802 the decoding module 804, theorientation module 806, and the content retrieval module 808 via acomputer network 110. The image capturing module 802, decoding module804, the orientation module 806, and the content retrieval module 808may be accessed directly through input/output devices connected to thepersonal computer 812 or the mobile computing device 120. In otherembodiments, the image capturing module 802, the decoding module 804,the orientation module 806, and the content retrieval module 808 may beaccessed through the computer network 110 in a client-serverrelationship, remote access, or other network-related operation. One ofskill in the art will recognize other ways to access the image capturingmodule 802, the decoding module 804, the orientation module 806, and thecontent retrieval module 808.

In one embodiment, the decoding module 804, the orientation module 806,and the content retrieval module 808 are stored on a data storage devicein or connected to the personal computer 812 or mobile computing device120. In another embodiment, the decoding module 804, the orientationmodule 806, and the content retrieval module 808 may be distributed indifferent locations throughout the apparatus 800. In certain embodimentsthe decoding module 804 may be stored on one device within the apparatus800 and the orientation module 806 and the content retrieval module 808may be stored other devices within the apparatus 800. One of skill inthe art will recognize other ways to store and execute portions of thedecoding module 804, the orientation module 806, and the contentretrieval module 808.

The image capturing module 802, in certain embodiments, is aconventional camera or webcam coupled to or integral within one of themobile computing device 120 or the personal computer 812. The imagecapturing module 802 captures a rendering of at least a portion of animage. For example, in one embodiment, the image capturing module 802captures a rendering of the portion 604 of the image 602 discussed abovewith reference to FIG. 6. In the embodiment illustrated in FIG. 8, theimage capturing module 802 a is depicted on the same side of the mobilecomputing device 120 as the display module 810 a and the image capturingmodule 802 b is depicted on the same side of the computer 812 as thedisplay module 810 b. However, one of skill in the art will recognizethat in other embodiments, the display modules 810 a and 810 b may bepositioned on an opposite side of the mobile computing device 120 or thecomputer 812 respectively.

As discussed above, the image 602 includes an embedded cryptographicrepresentation 302 of at least one character 212 in a code 202. The code202 corresponds to a unit of content such as the units of content 206,208, or 210 in FIG. 2. The embedded cryptographic representation 302 ofthe at least one character 212 in the code 202 identifies an orientationof at least a portion 604 of the image 602 as further discussed below.

The decoding module 804 decodes the embedded cryptographicrepresentation 302 of the characters 212 in the code 202. In certainembodiments, the decoding module 804 uses the cryptography system 400 ofFIG. 4 to decode the embedded cryptographic representation 302 of thecharacters 212 in the code 202. One of skill in the art will recognizeother decoding methods for determining the characters 212 in the code202.

In certain embodiments, the orientation module 806 determines anorientation of the rendering of at least a portion 604 of an image 602.In certain embodiments, the orientation module 806 uses the embeddedcryptographic representation 302 of the at least one character 212 inthe code 202 to identify the orientation of the portion 604 of the image602 in a manner substantially similar to the manner in which theorientation module 109 of system 100 determines the orientation of theimage 602 as discussed above with reference to FIGS. 7A-7C.

The content retrieval module 808 retrieves the unit of content 204(i.e., a unit of content 206, 208, or 210) corresponding to the code 202from a storage location. In certain embodiments, the storage locationmay be a storage module located on one of the file server 112, themobile computing device 120, or the computer 812. In other embodiments,the storage location may be a remote website or other locationaccessible by the computer network 110.

The display module 810 displays the unit of content 204 (i.e., a unit ofcontent 206, 208, or 210) on the user's computer 812 or mobile computingdevice 120. In certain embodiments, the unit of content 204 (i.e., aunit of content 206, 208, or 210) is displayed in an orientationcorresponding to the orientation of the rendering of the at least aportion 604 of the image 602.

In certain embodiments, the display module 810 changes the displayedorientation of the unit of content 204 (i.e., a unit of content 206,208, or 210) in response to the orientation module 806 determining thatthe orientation of the rendering of at least a portion 604 of the image602 has changed.

For example, FIG. 9A illustrates a schematic block diagram illustratingone embodiment of an operation 900 of the orientation module 806 and thedisplay module 810 a for determining a first orientation 902 of theembedded image 602 and displaying a unit of content 204 in anorientation 904 corresponding to the first orientation 902 in accordancewith the present invention. FIG. 9B illustrates a schematic blockdiagram illustrating one embodiment of an operation 910 of theorientation module 806 and the display module 810 a for determining asecond orientation 906 of the embedded image 602 and displaying a unitof content 204 in an orientation 908 corresponding to the secondorientation 906 in accordance with the present invention.

In FIG. 9A the image capturing module 802 a has captured a rendering ofat least a portion 604 of the image 602. As discussed above, in certainembodiments, the image capturing module 802 a may capture a rendering ofthe entire image 602. In other embodiments, the image capturing module802 a may only capture rendering of a portion 604 of the image 602. Insuch an embodiment, a size of the portion 604 of the image 602 capturedby the image capturing module 802 a should be sufficient to contain theembedded cryptographic representations 302 for each character 212 of theat least one character 212 in the code 202.

In certain embodiments, the orientation module 806 references theposition of mark locations 304 (FIG. 3B) to compare the distances 702(FIG. 7A-7C) between the mark locations 304 and determine theorientation (the first orientation 902 as illustrated in FIG. 9A) of theimage 602. In other embodiments, the orientation module 806 compares thesize of nonnative markings in the mark locations 304 to determine theorientation (the first orientation 902 as illustrated in FIG. 9A) of theimage 602.

The display module 810 a uses the orientation (the first orientation 902as illustrated in FIG. 9A) of the image 602, as determined by theorientation module 806, to display the unit of content 204 in anorientation 904 corresponding to the orientation (the first orientation902 as illustrated in FIG. 9A) of the image 602. In the embodimentillustrated in FIGS. 9A and 9B, the unit of content 204 is illustratedas a video image 208. One of skill in the art will recognize that inother embodiments, the unit of content 204 may be any other informationtype communicable to a user via digital communication.

If the orientation of the image 602 changes, as illustrated in FIG. 9B,the image capturing module 802 a captures a rendering of the image 602or a portion 604 of the image 602 in the changed orientation. Thus, ifthe orientation of the image 602 changes from the first orientation 902,as illustrated in FIG. 9A, to a second orientation 908, as illustratedin FIG. 9B, the image capturing module 802 a captures a rendering of theimage 602 or a portion 604 of the image 602 in the changed orientation.In certain embodiments, the image capturing module 802 a continuously orrepeatedly captures renderings of the image 602 or a portion 604 of theimage 602 as the orientation of the image 602 is the changed.

As the new orientations are captured by the image capturing module 802a, the orientation module 806 determines the new orientations of theimage 602 and the display module 810 a displays the unit of content 204in orientations corresponding to the new orientations of the image 602.

In certain embodiments, the image capturing module 802 a of the mobilecomputing device 120 and/or the image capturing module 802 b of thecomputer 812 may also capture an environment surrounding the image 602.In such an embodiment, the display module 810 a of the mobile computingdevice 120 and/or the display module 810 b of the computer 812 maydisplay the environment surrounding the image with the unit of content204 superimposed on the environment surrounding the image 602.

For example, FIG. 10 illustrates a schematic block diagram illustratingone embodiment of an operation 1000 of the image capturing module 802and the display module 810 a for superimposing a unit of content 204 ona capture of an environment 1002 surrounding an image 602. In certainembodiments, the image capturing module 802 captures a rendering of anenvironment 1002 surrounding an image 602 or a portion 604 of an image602. If the image 602 or portion 604 of the image 602 includes embeddedcryptographic representations 302 for each character 212 of the code202, the decoding module 804 decodes the embedded cryptographicrepresentations 302 of the characters 212 in the code 202 and thecontent retrieval module 808 retrieves the unit of content 204corresponding to the code 202.

The display module 810 a displays the environment 1002 surrounding theimage 602 and overlays the unit of content 204 on top of the environmentsurrounding the image 602. Thus, in certain embodiments, the unit ofcontent 204 appears to be emanating from the environment surrounding theimage 602. In one embodiment, the orientation module 806 may determinethe orientation of the image 602 and the display module 810 a maydisplay the unit of content 204 in an orientation corresponding to theorientation of the image 602.

The embodiments discussed above with reference to FIGS. 9A, 9B and 10reference the image capturing module 802 a and the display module 810 aof the mobile computing device 120. However, one of skill in the artwill recognize that the operations 900, 910, and 1000 of 9A, 9B and 10may be performed with the image capturing module 802 b and the displaymodule 810 b of the computer 812.

FIG. 11 is a schematic block diagram illustrating another embodiment ofan apparatus 1100 to communicate content in accordance with the presentinvention. In certain embodiments, the apparatus 800 includes an imagecapturing module 802, a decoding module 804, an orientation module 806,a content retrieval module 808, and a display module 810.

In certain embodiments, the image capturing module 802 captures a livevideo of an image 1102 and an environment surrounding the image 1102.The image 1102 includes an embedded cryptographic representation 302 ofa code 202. The embedded cryptographic representation 302 of the code202 and the code 202 itself are discussed above. In the embodimentillustrated in FIG. 11, the image capturing module 802 has captured alive video of a business card 1106 and the environment surrounding thebusiness card 1106.

If the orientation of the image 1102 is altered with respect to theimage capturing module 802, the display module 810 displays the livevideo of the image 1102 in the altered orientation. For example, FIG. 11depicts the business card 1106 in a first orientation 1108 and a secondorientation 1110. In the first orientation 1108, the business card 1106is oriented in a substantially flat orientation with the top portion1112 of the business card 1106 being substantially the same distancefrom the image capturing module 802 as the bottom portion 1114 of thebusiness card 1106. In the second orientation 1110, the top portion 1112is positioned further away from the image capturing module 802 than thebottom portion 1114.

The display module 810 displays a live video of the image 1102 (thebusiness card 1106). Accordingly, as the orientation of the image 1102changes, the display module 810 displays the image 1102 in the variousnew orientations.

In certain embodiments, the decoding module 804 decodes the embeddedcryptographic representation 302 of the code 202 to determine the code202. The code 202 corresponds to a unit of content 204 such as an image206, a video image 208, a webpage 210, etc. In the embodimentillustrated in FIG. 11, the unit of content 204 is depicted as a threedimensional video image 208, in this case a three dimensional videoimage of a frog 1104.

Typically the embedded cryptographic representation 302 of the code 202is difficult to detect in the image 1102. In certain embodiment, theembedded cryptographic representation 302 of the code 202 in the image1102 is undetectable by a human but can be detected by electronic means.In the embodiment illustrated in FIG. 11, the embedded cryptographicrepresentation 302 of the code 202 in the image 1102 is depicted asbeing unobservable by a human (i.e., the embedded cryptographicrepresentation 302 of the code 202 is not illustrated in FIG. 11).However, one of skill in the art will recognize that in certainembodiments, the cryptographic representation 302 of the code 202 isincluded in the image 1102 and is observable by a computer implementedmechanism. For example, in one embodiment, the cryptographicrepresentation 302 of the code 202 is included in the image 1102 in asingle color channel (i.e., a blue color channel) which, when observedby a human is difficult or impossible to detect. In other embodiments,the cryptographic representation 302 of the code 202 may be observablein the image 1102 by a human upon close inspection but remainsrelatively unobservable upon casual inspection.

The decoding module 804 decodes the embedded cryptographicrepresentation 302 of the code 202 to determine the code 202. Thecontent retrieval module 808 uses the code 202, as determined by thedecoding module 804, to retrieve the unit of content 204 (the threedimensional video image of the frog 1104) from a storage location. Incertain embodiments, the unit of content 204 may be stored on a harddrive on a server. In other embodiments, the unit of content 204 may bestored on a hard drive of another computer accessible through a computernetwork such as computer network 110. One of skill in the art willrecognize that the unit of content 204 may be stored on any storagedevice accessible by the mobile computing device 120 or the computer812.

The display module 810 displays the live video of the image 1102 (thebusiness card 1106). In one embodiment, the display module 810 alsodisplays the unit of content 204 on the live video of image 1102 and/orthe environment surrounding the image 1102. Thus, rather than directinga web browser to a website hosting the unit of content 204 anddisplaying the unit of content 204 within the web browser, the unit ofcontent 204 is displayed directly in the display module 810 overlayingthe image 1102 and/or the image 1102 environment. For example, in theembodiment illustrated in FIG. 11, the three dimensional video image ofthe frog 1104 is retrieved from the storage location and displayed onthe live video image 1102 of the business card 1106. Because the videoimage of the frog 1104 is three dimensional, the frog appears to bestanding on the video image 1102 of the business card 1106.

In certain embodiments, the apparatus 1100 includes an orientationmodule 806 that determines the orientation of the image 1102 (i.e., thebusiness card 1106). In such an embodiment, the display module 810displays the unit of content 204 (i.e., the video image of the frog1104) in an orientation corresponding to the orientation of the image1102. If the image 1102 (the business card 1106) is rotated to anotherorientation, the video image of the frog 1104 changes such that the frogappears to be standing on the business card 1106 in the differentorientation. In certain embodiments, the display module 810 displays theunit of content 204 (the video image of the frog 1104) on the live videoof the image 1102, with the unit of content 204 extending from the videoimage 1102 in three dimensions.

In one embodiment, the video image of the frog 1104 only includes imagedata for the frog (and any associated accessories held by the frog suchas the cell phone illustrated in FIG. 11) and does not include anybackground image data. In such an embodiment, only the frog (and anyassociated accessories held by the frog) is shown as being overlaid onthe video image 1102 of the business card 1106. In other embodiments,the frog may be shown in a virtual environment with the frog and thevirtual environment overlaid on the video of the image 1102.

FIG. 12 is a schematic block diagram illustrating another embodiment ofan apparatus 1200 to communicate content in accordance with the presentinvention. In certain embodiments, the apparatus 800 includes an imagecapturing module 802, a decoding module 804, a content retrieval module808, and a display module 810.

In certain embodiments, the image capturing module 802 captures arendering of at least a portion of a first still image 1202. In such anembodiment, the first still image 1202 may be a shot from a sequence ofimages of a video 1204. For example, in the embodiment illustrated inFIG. 12, the first still image 1202 is depicted as a still image of agolfer 1208 with the golf club positioned at the pinnacle of thegolfer's 1208 golf swing. The sequence of images of the video 1204include a series of still images that make up a video 1204 of the golfer1208 finishing the golf swing.

The first still image 1202 includes an embedded cryptographicrepresentation 302 of a code 202 with the code 202 corresponding to thesequence of still images that make up the video 1204. The decodingmodule 804 decodes the embedded cryptographic representation 302 of thecode 202 to identify the code 202. The content retrieval module 808retrieves the sequence of still images of the video 1204 correspondingto the code 202, in this embodiment, the still images that make up thevideo 1204 of the golfer 1208 finishing the golf swing.

The display module 810 displays the sequence of still images of thevideo 1204. In certain embodiments, the first displayed shot of thevideo 1204 is the first still image 1202. The remainder of the video1204 includes the remaining series of images from the sequence of imagesof the video 1204 displayed in chronological order. Thus, in oneembodiment, the display module 810 displays the first still image 1202first with the remainder of the still images of the golf swing beingdisplayed in chronological order thereafter. In such an embodiment, thefirst still image 1202 appears to come alive such that the golfer 1208appears to finish the golf swing.

In certain embodiments, the display module 810 automatically displaysthe sequence of still images of the video 1204 in response to thedecoding module 804 decoding the embedded cryptographic representation302 of the code 202 and the content retrieval module 808 retrieving thesequence of still images of the video 1204 corresponding to the code202. Thus, when an image 1202 having an embedded cryptographicrepresentation 302 of a code 202 is positioned within the view of theimage capturing module 802, the display module 810 displays a video 1204of the image 1202 beginning at the point in time at which the image 1202was captured.

While the embodiment illustrated in FIG. 12 depicts a video of a golfer1208 completing a golf swing, one of skill in the art will recognizethat the apparatus 1200 may be used with any series of images that makeup a video 1204 to make a single still image 1202 appear to come alive.For example, in one embodiment, the single still image 1202 may be astill of a bride in a photo shoot and the apparatus 1200 may appear tomake the bride come alive to finish the photo shoot. In otherembodiments, the single still image 1202 may be a magazine advertisementfor an automobile, wherein the automobile “comes alive” to show theperformance characteristics of the automobile. In yet anotherembodiment, the apparatus 1200 may be used to make any still image 1202appear to “come alive.”

FIG. 13 illustrates a schematic flowchart diagram of a method 1300 ofembedding information in an image 602 according to one embodiment of thepresent invention. In certain embodiments, the method 1300 may beperformed using the system 100 described above.

The method 1300 begins 1302 and the code definition module 104 defines1304 a code 202 corresponding to a unit of content 204. As discussedabove, the code 202 includes at least one character 212. Thecryptography module 106 defines a cryptographic representation 302 foreach character 212 of the at least one character 212 in the code 202.

Each cryptographic representation 302 includes a group 504 of regularlyspaced mark locations 304. Each mark location 304 includes a markselected from one of a nonnative mark and a native mark. A pattern ofmarks in the group 504 of regularly spaced mark locations 304 is uniqueto each character 212 of the at least one character 212 in the code 202.

In one embodiment, the embedding module 108 embeds 1308 thecryptographic representation 302 for each character 212 of the at leastone character 212 of the code 202 into at least a portion of an image602, with the distance between mark locations 304 in the image 602indicate an orientation of the image 602 and the method ends 1310.

In one embodiment, the method 1300 also includes determining anorientation of the image 602 having the embedded cryptographicrepresentations 302 by comparing a distance 702 between mark locations304 in a first group 504 of regularly spaced mark locations with adistance 702 between mark locations 304 in a second group 504 ofregularly spaced mark locations 304. In such an embodiment, the distance702 between mark locations 304 in the various groups 504 indicates anorientation of the image 602. In other embodiments, the orientationmodule 109 may compare the sizes of markings contained within the marklocations 304 to determine the orientation of the image 602.

FIG. 14 is a schematic flowchart diagram illustrating one embodiment ofa method 1400 to communicate content in accordance with the presentinvention. In certain embodiments, the method 1400 may be performedusing the apparatus 800 described above.

The method 1400 begins 1402 and the image capturing module 802 captures1404 a rendering of at least a portion 604 of an image 602 having anembedded cryptographic representation 302 of at least one character 212in a code 202. The code 202 corresponds to a unit of content 204. Theembedded cryptographic representation 302 of the characters 212identifies an orientation of the at least a portion 604 of the image602.

The decoding module 804 decodes 1406 the embedded cryptographicrepresentations 302 of the characters 212 in the code 202. Theorientation module 806 determines 1408 an orientation of the renderingof the image 602. The content retrieval module 808 retrieves 1410 theunit of content 204 corresponding to the code 202 from a storagelocation and the display module 810 displays 1412 unit of content 204 inan orientation corresponding to the orientation of the rendering of theimage 602. The method 1400 then ends 1414.

The above described systems, apparatus and methods may be particularlyuseful in a marketing program. For example, in certain embodiments, anyimage 602 may be embedded with cryptographic representations 302 of acode 202. In an exemplary embodiment, the cryptographic representations302 of the code 202 may be embedded into images 602 used as logos,advertisements, magazine articles, etc. Because the code 202 is linkedor otherwise identifies a particular unit of content 204, the image 602may be used to retrieve that unit of content 204. The unit of content204 may then be displayed to the user to provide additional informationabout the image owner's products or services. One of skill in the artwill recognize that the present invention may be useful in any arenawhere an individual would like to convey information in a limited space(i.e. in an image 602).

FIG. 15 is a schematic flowchart diagram illustrating one embodiment ofa method 1500 to capture live video of an image with embedded code toaccess and communicate content in accordance with the present invention.The method 1500 begins 1502 and captures 1504 a live video of an imageand an environment surrounding the image. The image has an embeddedcryptographic representation of a code where the code corresponds to aunit of content. The method 1500 may also determine (not shown) anorientation of the image. In one embodiment, the embedded cryptographicrepresentation of the at least one character identifies an orientationof the at least a portion of the image.

The method 1500 decodes 1506 the embedded cryptographic representationof the code and retrieves 1508 the unit of content corresponding to thecode from a storage location. The method 1500 displays 1510 the unit ofcontent on the live video of the image and/or the image environment, andthe method 1500 ends 1512. The unit of content may be a video, an image,or other type of image.

FIG. 16 is a schematic flowchart diagram illustrating one embodiment ofa method 1600 to capture a rendering of a still image with embedded codeto access and communicate a sequence of related still images inaccordance with the present invention. The method 1600 begins 1602 andcaptures 1604 a rendering of at least a portion of a first still image.The first still image includes a shot from a sequence of images of avideo. The first still image has an embedded cryptographicrepresentation of a code where the code corresponds to the sequence ofstill images comprising the video.

The method 1600 decodes 1606 the embedded cryptographic representationof the code to identify the code and retrieves 1608 the sequence ofstill images of the video corresponding to the code. The method 1600displays 1610 the sequence of still images of the video, and the method1600 ends 1612. A first displayed shot of the video includes the firststill image and a remainder of the video includes a remaining series ofimages from the sequence of images of the video displayed inchronological order. In one embodiment, displaying 1610 the sequence ofstill images of the video includes automatically displaying the sequenceof still images of the video in response to decoding 1606 the embeddedcryptographic representation of the code and retrieving 1608 thesequence of still images of the video corresponding to the code.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. An apparatus to communicate content, theapparatus comprising: an image capturing module that captures arendering of at least a portion of a first still image, the first stillimage comprising a shot from a sequence of images of a video, the firststill image having an embedded cryptographic representation of a code,the code corresponding to the sequence of still images comprising thevideo; a decoding module that decodes the embedded cryptographicrepresentation of the code to identify the code; a content retrievalmodule that retrieves the sequence of still images of the videocorresponding to the code; and a display module that displays thesequence of still images of the video, wherein a first displayed shot ofthe video comprises the first still image, wherein a remainder of thevideo comprises a remaining series of images from the sequence of imagesof the video displayed in chronological order.
 2. The apparatus of claim1, wherein the display module automatically displays the sequence ofstill images of the video in response to the decoding module decodingthe embedded cryptographic representation of the code and the contentretrieval module retrieving the sequence of still images of the videocorresponding to the code.
 3. The apparatus of claim 1, wherein eachcryptographic representation of each character of the code comprises agroup of regularly spaced mark locations, each mark location having amark selected from one of a nonnative mark and a native mark, wherein apattern of marks in the group of regularly spaced mark locations isunique to each character in the code.
 4. The apparatus of claim 3,further comprising an orientation module that determines an orientationof the rendering of the at least a portion of the still image, whereinorientation of the rendering of the at least a portion of the stillimage is determined by comparing a distance between mark locations in afirst group of regularly space mark locations with a distance betweenmark locations in a second group of regularly spaced mark locations. 5.The apparatus of claim 4, wherein the orientation of the rendering of atleast a portion of the still image is determined in three dimensions. 6.The apparatus of claim 3, wherein the nonnative mark comprises a markingadded to the still image, the marking having a perceptible differencebetween a native intensity value of a location in the still image and anintensity value of the marking added to the still image.
 7. Theapparatus of claim 6, wherein the perceptible difference between thenative intensity value of the location in the still image and theintensity value of the marking added to the still image comprises adifference that is greater than a predefined threshold.
 8. The apparatusof claim 1, wherein the image capturing module captures an environmentsurrounding the at least a portion of the still image, wherein thedisplay module displays the environment surrounding the at least aportion of the still image, wherein the sequence of still images issuperimposed on the environment surrounding the at least a portion ofthe still image.
 9. The apparatus of claim 1, further comprising anorientation module that determines an orientation of the rendering ofthe at least a portion of the still image, wherein the display modulechanges the displayed orientation of the sequence of still images inresponse to the orientation module determining that the orientation ofthe rendering of at least a portion of the still image has changed. 10.The apparatus of claim 1, further comprising a mobile device, the mobiledevice comprising the image capturing module, the decoding module, thecontent retrieval module, and the display module.
 11. A method forcommunicating content, the method comprising: capturing a rendering ofat least a portion of a first still image, the first still imagecomprising a shot from a sequence of images of a video, the first stillimage having an embedded cryptographic representation of a code, thecode corresponding to the sequence of still images comprising the video;decoding the embedded cryptographic representation of the code toidentify the code; retrieving the sequence of still images of the videocorresponding to the code; and displaying the sequence of still imagesof the video, wherein a first displayed shot of the video comprises thefirst still image, wherein a remainder of the video comprises aremaining series of images from the sequence of images of the videodisplayed in chronological order.
 12. The method of claim 11, whereindisplaying the sequence of still images of the video comprisesautomatically displaying the sequence of still images of the video inresponse to decoding the embedded cryptographic representation of thecode and retrieving the sequence of still images of the videocorresponding to the code.
 13. The method of claim 11, wherein eachcryptographic representation of each character of the code comprises agroup of regularly spaced mark locations, each mark location having amark selected from one of a nonnative mark and a native mark, wherein apattern of marks in the group of regularly spaced mark locations isunique to each character in the code.
 14. The method of claim 13,further determining an orientation of the rendering of the at least aportion of the still image.
 15. The method of claim 14, whereinorientation of the rendering of the at least a portion of the stillimage is determined by comparing a distance between mark locations in afirst group of regularly space mark locations with a distance betweenmark locations in a second group of regularly spaced mark locations. 16.The method of claim 14, wherein displaying the sequence of still imagesof the video comprises changing the displayed orientation of thesequence of still images in response to determining that the orientationof the rendering of at least a portion of the still image has changed.17. The method of claim 13, wherein the nonnative mark comprises amarking added to the still image, the marking having a perceptibledifference between a native intensity value of a location in the stillimage and an intensity value of the marking added to the still image.18. The method of claim 11, wherein capturing a rendering of at least aportion of a first still image comprises captures an environmentsurrounding the at least a portion of the still image, whereindisplaying the sequence of still images of the video comprisesdisplaying the environment surrounding the at least a portion of thestill image, wherein the sequence of still images is superimposed on theenvironment surrounding the at least a portion of the still image.
 19. Acomputer program product for displaying content, the computer programproduct comprising a computer readable storage medium having programcode embodied therein, the program code readable/executable by aprocessor for: capturing a rendering of at least a portion of a firststill image, the first still image comprising a shot from a sequence ofimages of a video, the first still image having an embeddedcryptographic representation of a code, the code corresponding to thesequence of still images comprising the video; decoding the embeddedcryptographic representation of the code to identify the code;retrieving the sequence of still images of the video corresponding tothe code; and displaying the sequence of still images of the video,wherein a first displayed shot of the video comprises the first stillimage, wherein a remainder of the video comprises a remaining series ofimages from the sequence of images of the video displayed inchronological order.
 20. The computer program product of claim 19,wherein displaying the sequence of still images of the video comprisesautomatically displaying the sequence of still images of the video inresponse to decoding the embedded cryptographic representation of thecode and retrieving the sequence of still images of the videocorresponding to the code.